#!/usr/bin/env python
# -*- coding:utf-8 -*-


#1.sys.path.append("/root/mods")的作用？
'''
进入到文件夹mods目录内

'''
#2.字符串如何进行反转？
'''
[::-1]
'''

#3.不用中间变量交换a和b的值。
'''
a = 1
b = 2
a,b=b,a
print(a,b)
'''

#4.*args和**kwargs这俩参数是什么意思？我们为什么要用它。
'''
*args和**kwargs是万能参数，*args可以接受任意个位置参数，**kwargs可以接受任意个关键字参数

'''
# 5.函数的参数传递是地址还是新值？ 传递的地址

#6.看代码写结果：

'''
my_dict = {'a':0,'b':1}
def func(d):
    d['a'] = 1
    return d

func(my_dict)
my_dict['c'] = 2
print(my_dict)
#{'a':1,'b':1，'c':2}
'''
#7.什么是lambda表达式
'''
lambda表达式用来表示简单的函数
'''

# 8.range和xrang有什么不同？
'''
py2:
range:在内存中立即把所有值都创建，
xrange:不会在内存中立即创建，而是在循环时，边循环边创建。
py3：
range：相当于py中的xrange

'''
#9."1,2,3" 如何变成 ['1','2','3',]
'''
v="1,2,3"
v1=v.split(',')
print(v1)
'''

#10.['1','2','3'] 如何变成 [1,2,3]
'''
v = ['1','2','3']
v1=[]
for i in v:
    i=int(i)
    v1.append(i)
print(v1)
'''

#11.def f(a,b=[]) 这种写法有什么陷阱？
'''
b=[]参数是可变类型，如果不传参数，用的是同一个地址。
'''
#12.如何生成列表 [1,4,9,16,25,36,49,64,81,100] ，尽量用一行实现。
'''
print([i**2 for i in range(1,11)])
'''
#13python一行print出1~100偶数的列表, (列表推导式, filter均可)
'''
print([i for i in range(1,101) if i%2==0])
'''
#14.把下面函数改成lambda表达式形式
'''
def func():
    result = []
    for i in range(10):
        if i % 3 == 0:
            result.append(i)
    return result 
'''
'''
func = lambda :[i for i in range(10) if i % 3==0]
print(func())
'''
#15.如何用Python删除一个文件？
'''
import shutil
shutil.rmtree('文件路径')
'''
#16如何对一个文件进行重命名？
'''
impport os
os.rename('原文件','新文件名')
'''
#17.python如何生成随机数？
'''
import random
import random
data = random.randint(10,100)
print(data)
'''

# 18.从0 - 99这100个数中随机取出10个数，要求不能重复，可以自己设计数据结构。
'''
info =[]
import random
while True:
    data= random.randint(0,99)
    if data not in info:
        info.append(data)
    if len(info)>10:
        break
print(info)
'''
#19.用Python实现 9*9 乘法表 （两种方式）
#方式1
'''
for i in range(1,10):
    for j in range(1,i+1):
        print(' '+str(j)  +'*'+str(i),end='')
    print('\n')
'''
#方式2
'''
[[print('{}*{} '.format(i,j),end='') if i>=j else print('') for j in range(1,i+2)] for i in range(1,10)]
'''
#20.请给出下面代码片段的输出并阐述涉及的python相关机制。
'''
def dict_updater(k,v,dic={}):
    dic[k] = v
    print(dic)
dict_updater('one',1)   #{'one':1}
dict_updater('two',2)   #{'one':1,"two":2}
dict_updater('three',3,{})#{'three':3}

#因为dic={}是可变类型，如果不传参，用的是同一个参数。
'''

#21.写一个装饰器出来。
'''
def wrapper(func):
    def inner(*args,**kwargs):
        v=func(*args,**kwargs)
        return v
    return inner

@wrapper
def text():
    pass
'''

#22用装饰器给一个方法增加打印的功能。

'''
def wrapper(func):
    def inner(*args,**kwargs):
        v=func(*args,**kwargs)
        print(v)
        return v
    return inner

@wrapper
def text():
    pass
'''
#23as 请写出log实现(主要功能时打印函数名)

'''
def log(func):
    def inner(*args,**kwargs):
        print('call now()')
        v= func(*args,**kwargs)
        return v
    return inner


@log
def now():
    print ("2013-12-25")

now()

    # 输出
	# call now()
	# 2013-12-25
'''
#24.向指定地址发送请求，将获取到的值写入到文件中。

import requests # 需要先安装requests模块：pip install requests

response = requests.get('https://www.cnblogs.com/alex3714/p/9473873.html')
# print(response.text)

# 获取结构中的所有name字段，使用逗号链接起来，并写入到 catelog.txt 文件中。
"""
[
    {'id': 1, 'name': 'Python', 'hide': False, 'category': 1}, 
    {'id': 2, 'name': 'Linux运维', 'hide': False, 'category': 4}, 
    {'id': 4, 'name': 'Python进阶', 'hide': False, 'category': 1}, 
    {'id': 7, 'name': '开发工具', 'hide': False, 'category': 1}, 
    {'id': 9, 'name': 'Go语言', 'hide': False, 'category': 1},
    {'id': 10, 'name': '机器学习', 'hide': False, 'category': 3}, 
    {'id': 11, 'name': '技术生涯', 'hide': False, 'category': 1}
]
"""
import json
contend=json.loads(response.text)
print(contend)
# result=[]
# info = contend['data']
# print(info)
#
# for i in info:
#     result.append(i['name'])
# val=','.join(result)
# with open('catelog.txt',mode='w',encoding='utf-8')as file:
#     file.write(val)







